Autogenerated HTML docs for v2.20.1-519-g8fedd 
diff --git a/RelNotes/2.21.0.txt b/RelNotes/2.21.0.txt index 4596d9e..5ad2233 100644 --- a/RelNotes/2.21.0.txt +++ b/RelNotes/2.21.0.txt 
@@ -59,6 +59,9 @@  * Custom userformat "log --format" learned %S atom that stands for  the tip the traversal reached the commit from, i.e. --source.   + * "git instaweb" learned to drive http.server that comes with + "batteries included" Python installation (both Python2 & 3). +    Performance, Internal Implementation, Development Support etc.   @@ -101,6 +104,26 @@  * The code to walk tree objects has been taught that we may be  working with object names that are not computed with SHA-1.   + * The in-core repository instances are passed through more codepaths. + + * Update the protocol message specification to allow only the limited + use of scaled quantities. This is ensure potential compatibility + issues will not go out of hand. + + * Micro-optimize the code that prepares commit objects to be walked + by "git rev-list" when the commit-graph is available. + + * "git fetch" and "git upload-pack" learned to send all exchange over + the sideband channel while talking the v2 protocol. + + * The codepath to write out commit-graph has been optimized by + following the usual pattern of visiting objects in in-pack order. + + * The codepath to show progress meter while writing out commit-graph + file has been improved. + + * Cocci rules have been updated to encourage use of strbuf_addbuf(). +    Fixes since v2.20  ----------------- @@ -221,6 +244,71 @@  temporary file.  (merge fa6f225e01 js/add-e-clear-patch-before-stating later to maint).   + * "git p4" failed to update a shelved change when there were moved + files, which has been corrected. + (merge 7a10946ab9 ld/git-p4-shelve-update-fix later to maint). + + * The codepath to read from the commit-graph file attempted to read + past the end of it when the file's table-of-contents was corrupt. + + * The compat/obstack code had casts that -Wcast-function-type + compilation option found questionable. + (merge 764473d257 sg/obstack-cast-function-type-fix later to maint). + + * An obvious typo in an assertion error message has been fixed. + (merge 3c27e2e059 cc/test-ref-store-typofix later to maint). + + * In Git for Windows, "git clone \\server\share\path" etc. that uses + UNC paths from command line had bad interaction with its shell + emulation. + + * "git add --ignore-errors" did not work as advertised and instead + worked as an unintended synonym for "git add --renormalize", which + has been fixed. + (merge 9e5da3d055 jk/add-ignore-errors-bit-assignment-fix later to maint). + + * On a case-insensitive filesystem, we failed to compare the part of + the path that is above the worktree directory in an absolute + pathname, which has been corrected. + + * Asking "git check-attr" about a macro (e.g. "binary") on a specific + path did not work correctly, even though "git check-attr -a" listed + such a macro correctly. This has been corrected. + (merge 7b95849be4 jk/attr-macro-fix later to maint). + + * "git pack-objects" incorrectly used uninitialized mutex, which has + been corrected. + (merge edb673cf10 ph/pack-objects-mutex-fix later to maint). + + * "git checkout -b <new> [HEAD]" to create a new branch from the + current commit and check it out ought to be a no-op in the index + and the working tree in normal cases, but there are corner cases + that do require updates to the index and the working tree. Running + it immediately after "git clone --no-checkout" is one of these + cases that an earlier optimization kicked in incorrectly, which has + been fixed. + (merge 8424bfd45b bp/checkout-new-branch-optim later to maint). + + * "git diff --color-moved --cc --stat -p" did not work well due to + funny interaction between a bug in color-moved and the rest, which + has been fixed. + (merge dac03b5518 jk/diff-cc-stat-fixes later to maint). + + * When GIT_SEQUENCE_EDITOR is set, the command was incorrectly + started when modes of "git rebase" that implicitly uses the + machinery for the interactive rebase are run, which has been + corrected. + (merge 891d4a0313 pw/no-editor-in-rebase-i-implicit later to maint). + + * The commit-graph facility did not work when in-core objects that + are promoted from unknown type to commit (e.g. a commit that is + accessed via a tag that refers to it) were involved, which has been + corrected. + (merge 4468d4435c sg/object-as-type-commit-graph-fix later to maint). + + * "git fetch" output cleanup. + (merge dc40b24df4 nd/fetch-compact-update later to maint). +  * Code cleanup, docfix, build fix, etc.  (merge 89ba9a79ae hb/t0061-dot-in-path-fix later to maint).  (merge d173e799ea sb/diff-color-moved-config-option-fixup later to maint). @@ -240,3 +328,5 @@  (merge 1747125e2c cc/parial-clone-doc-typofix later to maint).  (merge e01378753d cc/fetch-error-message-fix later to maint).  (merge 54e8c11215 jk/remote-insteadof-cleanup later to maint). + (merge d609615f48 js/test-git-installed later to maint). + (merge ba170517be ja/doc-style-fix later to maint). 
diff --git a/git-add.html b/git-add.html index e30c5df..8937372 100644 --- a/git-add.html +++ b/git-add.html 
@@ -804,7 +804,7 @@  specifying <code>dir</code> will record not just a file <code>dir/file1</code>   modified in the working tree, a file <code>dir/file2</code> added to   the working tree, but also a file <code>dir/file3</code> removed from  - the working tree. Note that older versions of Git used  + the working tree). Note that older versions of Git used   to ignore removed files; use <code>--no-all</code> option if you want   to add modified or new files but ignore removed ones.   </p>  @@ -924,7 +924,7 @@  <p>   Update the index not only where the working tree has a file   matching &lt;pathspec&gt; but also where the index already has an  - entry. This adds, modifies, and removes index entries to  + entry. This adds, modifies, and removes index entries to   match the working tree.   </p>   <div class="paragraph"><p>If no &lt;pathspec&gt; is given when <code>-A</code> option is used, all  @@ -1059,7 +1059,7 @@  <li>   <p>   Adds content from all <code>*.txt</code> files under <code>Documentation</code> directory  -and its subdirectories:  + and its subdirectories:   </p>   <div class="listingblock">   <div class="content">  @@ -1360,7 +1360,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2018-05-23 00:06:29 PDT  + 2019-02-05 15:33:20 PST   </div>   </div>   </body>  
diff --git a/git-add.txt b/git-add.txt index 45652fe..37bcab9 100644 --- a/git-add.txt +++ b/git-add.txt 
@@ -58,9 +58,9 @@ 	specifying `dir` will record not just a file `dir/file1` 	modified in the working tree, a file `dir/file2` added to 	the working tree, but also a file `dir/file3` removed from -	the working tree. Note that older versions of Git used +	the working tree). Note that older versions of Git used 	to ignore removed files; use `--no-all` option if you want -	to add modified or new files but ignore removed	ones. +	to add modified or new files but ignore removed ones.  +  For more details about the <pathspec> syntax, see the 'pathspec' entry  in linkgit:gitglossary[7]. @@ -124,7 +124,7 @@  --no-ignore-removal:: 	Update the index not only where the working tree has a file 	matching <pathspec> but also where the index already has an -	entry.	This adds, modifies, and removes index entries to +	entry. This adds, modifies, and removes index entries to 	match the working tree.  +  If no <pathspec> is given when `-A` option is used, all @@ -206,7 +206,7 @@  --------    * Adds content from all `*.txt` files under `Documentation` directory -and its subdirectories: + and its subdirectories:  +  ------------  $ git add Documentation/\*.txt 
diff --git a/git-branch.html b/git-branch.html index bd38a49..9a6c955 100644 --- a/git-branch.html +++ b/git-branch.html 
@@ -1251,7 +1251,7 @@  <li>   <p>   This step and the next one could be combined into a single step with  -"checkout -b my2.6.14 v2.6.14".  + "checkout -b my2.6.14 v2.6.14".   </p>   </li>   </ol></div>  @@ -1271,14 +1271,14 @@  <li>   <p>   Delete the remote-tracking branches "todo", "html" and "man". The next  -<em>fetch</em> or <em>pull</em> will create them again unless you configure them not to.  -See <a href="git-fetch.html">git-fetch(1)</a>.  + <em>fetch</em> or <em>pull</em> will create them again unless you configure them not to.  + See <a href="git-fetch.html">git-fetch(1)</a>.   </p>   </li>   <li>   <p>   Delete the "test" branch even if the "master" branch (or whichever branch  -is currently checked out) does not have all commits from the test branch.  + is currently checked out) does not have all commits from the test branch.   </p>   </li>   </ol></div>  @@ -1344,7 +1344,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2018-09-17 15:45:24 PDT  + 2019-02-05 15:33:20 PST   </div>   </div>   </body>  
diff --git a/git-branch.txt b/git-branch.txt index bf5316f..3bd83a7 100644 --- a/git-branch.txt +++ b/git-branch.txt 
@@ -297,7 +297,7 @@  ------------  +  <1> This step and the next one could be combined into a single step with -"checkout -b my2.6.14 v2.6.14". + "checkout -b my2.6.14 v2.6.14".    Delete an unneeded branch::  + @@ -309,10 +309,10 @@  ------------  +  <1> Delete the remote-tracking branches "todo", "html" and "man". The next -'fetch' or 'pull' will create them again unless you configure them not to. -See linkgit:git-fetch[1]. + 'fetch' or 'pull' will create them again unless you configure them not to. + See linkgit:git-fetch[1].  <2> Delete the "test" branch even if the "master" branch (or whichever branch -is currently checked out) does not have all commits from the test branch. + is currently checked out) does not have all commits from the test branch.      NOTES 
diff --git a/git-checkout.html b/git-checkout.html index d4987e8..ecdec9a 100644 --- a/git-checkout.html +++ b/git-checkout.html 
@@ -1297,20 +1297,20 @@  <li>   <p>   creates a new branch <em>foo</em>, which refers to commit <em>f</em>, and then  -updates HEAD to refer to branch <em>foo</em>. In other words, we&#8217;ll no longer  -be in detached HEAD state after this command.  + updates HEAD to refer to branch <em>foo</em>. In other words, we&#8217;ll no longer  + be in detached HEAD state after this command.   </p>   </li>   <li>   <p>   similarly creates a new branch <em>foo</em>, which refers to commit <em>f</em>,  -but leaves HEAD detached.  + but leaves HEAD detached.   </p>   </li>   <li>   <p>   creates a new tag <em>foo</em>, which refers to commit <em>f</em>,  -leaving HEAD detached.  + leaving HEAD detached.   </p>   </li>   </ol></div>  @@ -1345,8 +1345,8 @@  <li>   <p>   The following sequence checks out the <code>master</code> branch, reverts  -the <code>Makefile</code> to two revisions back, deletes hello.c by  -mistake, and gets it back from the index.  + the <code>Makefile</code> to two revisions back, deletes hello.c by  + mistake, and gets it back from the index.   </p>   <div class="listingblock">   <div class="content">  @@ -1393,7 +1393,7 @@  <li>   <p>   After working in the wrong branch, switching to the correct  -branch would be done using:  + branch would be done using:   </p>   <div class="listingblock">   <div class="content">  @@ -1421,7 +1421,7 @@  <li>   <p>   When a merge conflict happens during switching branches with  -the <code>-m</code> option, you would see something like this:  + the <code>-m</code> option, you would see something like this:   </p>   <div class="listingblock">   <div class="content">  @@ -1454,7 +1454,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2019-01-04 14:31:36 PST  + 2019-02-05 15:33:20 PST   </div>   </div>   </body>  
diff --git a/git-checkout.txt b/git-checkout.txt index 6acc3d9..9a39649 100644 --- a/git-checkout.txt +++ b/git-checkout.txt 
@@ -424,14 +424,14 @@  ------------    <1> creates a new branch 'foo', which refers to commit 'f', and then -updates HEAD to refer to branch 'foo'. In other words, we'll no longer -be in detached HEAD state after this command. + updates HEAD to refer to branch 'foo'. In other words, we'll no longer + be in detached HEAD state after this command.    <2> similarly creates a new branch 'foo', which refers to commit 'f', -but leaves HEAD detached. + but leaves HEAD detached.    <3> creates a new tag 'foo', which refers to commit 'f', -leaving HEAD detached. + leaving HEAD detached.    If we have moved away from commit 'f', then we must first recover its object  name (typically by using git reflog), and then we can create a reference to @@ -459,8 +459,8 @@  --------    . The following sequence checks out the `master` branch, reverts -the `Makefile` to two revisions back, deletes hello.c by -mistake, and gets it back from the index. + the `Makefile` to two revisions back, deletes hello.c by + mistake, and gets it back from the index.  +  ------------  $ git checkout master <1> @@ -494,7 +494,7 @@  ------------    . After working in the wrong branch, switching to the correct -branch would be done using: + branch would be done using:  +  ------------  $ git checkout mytopic @@ -522,7 +522,7 @@  changes you made since the tip of the new branch.    . When a merge conflict happens during switching branches with -the `-m` option, you would see something like this: + the `-m` option, you would see something like this:  +  ------------  $ git checkout -m mytopic 
diff --git a/git-cherry-pick.html b/git-cherry-pick.html index 7cf1721..9152359 100644 --- a/git-cherry-pick.html +++ b/git-cherry-pick.html 
@@ -1132,9 +1132,9 @@  <li>   <p>   apply the change that would be shown by <code>git show topic^</code>.  -In this example, the patch does not apply cleanly, so  -information about the conflict is written to the index and  -working tree and no new commit results.  + In this example, the patch does not apply cleanly, so  + information about the conflict is written to the index and  + working tree and no new commit results.   </p>   </li>   <li>  @@ -1145,15 +1145,15 @@  <li>   <p>   cancel the cherry-pick. In other words, return to the  -pre-cherry-pick state, preserving any local modifications you had in  -the working tree.  + pre-cherry-pick state, preserving any local modifications  + you had in the working tree.   </p>   </li>   <li>   <p>   try to apply the change introduced by <code>topic^</code> again,  -spending extra time to avoid mistakes based on incorrectly matching  -context lines.  + spending extra time to avoid mistakes based on incorrectly  + matching context lines.   </p>   </li>   </ol></div>  @@ -1176,7 +1176,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2018-01-26 15:11:04 PST  + 2019-02-05 15:33:20 PST   </div>   </div>   </body>  
diff --git a/git-cherry-pick.txt b/git-cherry-pick.txt index d35d771..b8cfeec 100644 --- a/git-cherry-pick.txt +++ b/git-cherry-pick.txt 
@@ -213,16 +213,16 @@  $ git cherry-pick -Xpatience topic^ <4>  ------------  <1> apply the change that would be shown by `git show topic^`. -In this example, the patch does not apply cleanly, so -information about the conflict is written to the index and -working tree and no new commit results. + In this example, the patch does not apply cleanly, so + information about the conflict is written to the index and + working tree and no new commit results.  <2> summarize changes to be reconciled  <3> cancel the cherry-pick. In other words, return to the -pre-cherry-pick state, preserving any local modifications you had in -the working tree. + pre-cherry-pick state, preserving any local modifications + you had in the working tree.  <4> try to apply the change introduced by `topic^` again, -spending extra time to avoid mistakes based on incorrectly matching -context lines. + spending extra time to avoid mistakes based on incorrectly + matching context lines.    SEE ALSO  -------- 
diff --git a/git-diff.html b/git-diff.html index 93ceb3f..3accdc7 100644 --- a/git-diff.html +++ b/git-diff.html 
@@ -2688,13 +2688,13 @@  <li>   <p>   Changes between the index and your last commit; what you  -would be committing if you run "git commit" without "-a" option.  + would be committing if you run "git commit" without "-a" option.   </p>   </li>   <li>   <p>   Changes in the working tree since your last commit; what you  -would be committing if you run "git commit -a"  + would be committing if you run "git commit -a"   </p>   </li>   </ol></div>  @@ -2713,14 +2713,14 @@  <li>   <p>   Instead of using the tip of the current branch, compare with the  -tip of "test" branch.  + tip of "test" branch.   </p>   </li>   <li>   <p>   Instead of comparing with the tip of "test" branch, compare with  -the tip of the current branch, but limit the comparison to the  -file "test".  + the tip of the current branch, but limit the comparison to the  + file "test".   </p>   </li>   <li>  @@ -2754,7 +2754,7 @@  <li>   <p>   Changes that occurred on the master branch since when the topic  -branch was started off it.  + branch was started off it.   </p>   </li>   </ol></div>  @@ -2773,13 +2773,13 @@  <li>   <p>   Show only modification, rename, and copy, but not addition  -or deletion.  + or deletion.   </p>   </li>   <li>   <p>   Show only names and the nature of change, but not actual  -diff output.  + diff output.   </p>   </li>   <li>  @@ -2802,7 +2802,7 @@  <li>   <p>   Spend extra cycles to find renames, copies and complete  -rewrites (very expensive).  + rewrites (very expensive).   </p>   </li>   <li>  @@ -2837,7 +2837,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2018-10-25 23:36:57 PDT  + 2019-02-05 15:33:20 PST   </div>   </div>   </body>  
diff --git a/git-diff.txt b/git-diff.txt index 030f162..72179d9 100644 --- a/git-diff.txt +++ b/git-diff.txt 
@@ -132,9 +132,9 @@  +  <1> Changes in the working tree not yet staged for the next commit.  <2> Changes between the index and your last commit; what you -would be committing if you run "git commit" without "-a" option. + would be committing if you run "git commit" without "-a" option.  <3> Changes in the working tree since your last commit; what you -would be committing if you run "git commit -a" + would be committing if you run "git commit -a"    Comparing with arbitrary commits::  + @@ -145,10 +145,10 @@  ------------  +  <1> Instead of using the tip of the current branch, compare with the -tip of "test" branch. + tip of "test" branch.  <2> Instead of comparing with the tip of "test" branch, compare with -the tip of the current branch, but limit the comparison to the -file "test". + the tip of the current branch, but limit the comparison to the + file "test".  <3> Compare the version before the last commit and the last commit.    Comparing branches:: @@ -162,7 +162,7 @@  <1> Changes between the tips of the topic and the master branches.  <2> Same as above.  <3> Changes that occurred on the master branch since when the topic -branch was started off it. + branch was started off it.    Limiting the diff output::  + @@ -173,9 +173,9 @@  ------------  +  <1> Show only modification, rename, and copy, but not addition -or deletion. + or deletion.  <2> Show only names and the nature of change, but not actual -diff output. + diff output.  <3> Limit diff output to named subtrees.    Munging the diff output:: @@ -186,7 +186,7 @@  ------------  +  <1> Spend extra cycles to find renames, copies and complete -rewrites (very expensive). + rewrites (very expensive).  <2> Output diff in reverse.    SEE ALSO 
diff --git a/git-fetch.html b/git-fetch.html index 4cf1c1c..0482edd 100644 --- a/git-fetch.html +++ b/git-fetch.html 
@@ -1782,7 +1782,7 @@  <li>   <p>   Peek at a remote&#8217;s branch, without configuring the remote in your local  -repository:  + repository:   </p>   <div class="listingblock">   <div class="content">  @@ -1866,7 +1866,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2018-03-06 15:25:02 PST  + 2019-02-05 15:33:20 PST   </div>   </div>   </body>  
diff --git a/git-fetch.txt b/git-fetch.txt index e319935..266d63c 100644 --- a/git-fetch.txt +++ b/git-fetch.txt 
@@ -266,7 +266,7 @@  because it is prefixed with a plus sign; `tmp` will not be.    * Peek at a remote's branch, without configuring the remote in your local -repository: + repository:  +  ------------------------------------------------  $ git fetch git://git.kernel.org/pub/scm/git/git.git maint 
diff --git a/git-format-patch.html b/git-format-patch.html index 5888862..ddf1761 100644 --- a/git-format-patch.html +++ b/git-format-patch.html 
@@ -2129,9 +2129,9 @@  <li>   <p>   Disable the use of format=flowed:  -Edit..Preferences..Advanced..Config Editor. Search for  -"mailnews.send_plaintext_flowed".  -Toggle it to make sure it is set to <code>false</code>.  + Edit..Preferences..Advanced..Config Editor. Search for  + "mailnews.send_plaintext_flowed".  + Toggle it to make sure it is set to <code>false</code>.   </p>   </li>   </ol></div>  @@ -2288,7 +2288,7 @@  <li>   <p>   Extract commits between revisions R1 and R2, and apply them on top of  -the current branch using <em>git am</em> to cherry-pick them:  + the current branch using <em>git am</em> to cherry-pick them:   </p>   <div class="listingblock">   <div class="content">  @@ -2298,7 +2298,7 @@  <li>   <p>   Extract all commits which are in the current branch but not in the  -origin branch:  + origin branch:   </p>   <div class="listingblock">   <div class="content">  @@ -2309,7 +2309,7 @@  <li>   <p>   Extract all commits that lead to <em>origin</em> since the inception of the  -project:  + project:   </p>   <div class="listingblock">   <div class="content">  @@ -2333,7 +2333,7 @@  <li>   <p>   Extract three topmost commits from the current branch and format them  -as e-mailable patches:  + as e-mailable patches:   </p>   <div class="listingblock">   <div class="content">  @@ -2360,7 +2360,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2018-12-01 06:35:58 PST  + 2019-02-05 15:33:20 PST   </div>   </div>   </body>  
diff --git a/git-format-patch.txt b/git-format-patch.txt index 2730442..1af85d4 100644 --- a/git-format-patch.txt +++ b/git-format-patch.txt 
@@ -504,9 +504,9 @@  "mailnews.wraplength" and set the value to 0.    3. Disable the use of format=flowed: -Edit..Preferences..Advanced..Config Editor. Search for -"mailnews.send_plaintext_flowed". -Toggle it to make sure it is set to `false`. + Edit..Preferences..Advanced..Config Editor. Search for + "mailnews.send_plaintext_flowed". + Toggle it to make sure it is set to `false`.    After that is done, you should be able to compose email as you  otherwise would (cut + paste, 'git format-patch' | 'git imap-send', etc), @@ -629,14 +629,14 @@  --------    * Extract commits between revisions R1 and R2, and apply them on top of -the current branch using 'git am' to cherry-pick them: + the current branch using 'git am' to cherry-pick them:  +  ------------  $ git format-patch -k --stdout R1..R2 | git am -3 -k  ------------    * Extract all commits which are in the current branch but not in the -origin branch: + origin branch:  +  ------------  $ git format-patch origin @@ -645,7 +645,7 @@  For each commit a separate file is created in the current directory.    * Extract all commits that lead to 'origin' since the inception of the -project: + project:  +  ------------  $ git format-patch --root origin @@ -664,7 +664,7 @@  use it only when you know the recipient uses Git to apply your patch.    * Extract three topmost commits from the current branch and format them -as e-mailable patches: + as e-mailable patches:  +  ------------  $ git format-patch -3 
diff --git a/git-help.html b/git-help.html index 942b0cc..cf25ff7 100644 --- a/git-help.html +++ b/git-help.html 
@@ -922,13 +922,13 @@  <li>   <p>   "woman": use <em>emacsclient</em> to launch the "woman" mode in emacs  -(this only works starting with emacsclient versions 22),  + (this only works starting with emacsclient versions 22),   </p>   </li>   <li>   <p>   "konqueror": use <em>kfmclient</em> to open the man page in a new konqueror  -tab (see <em>Note about konqueror</em> below).  + tab (see <em>Note about konqueror</em> below).   </p>   </li>   </ul></div>  @@ -1011,7 +1011,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2018-10-25 23:36:57 PDT  + 2019-02-05 15:33:20 PST   </div>   </div>   </body>  
diff --git a/git-help.txt b/git-help.txt index aab5453..c318bf8 100644 --- a/git-help.txt +++ b/git-help.txt 
@@ -118,9 +118,9 @@    * "man": use the 'man' program as usual,  * "woman": use 'emacsclient' to launch the "woman" mode in emacs -(this only works starting with emacsclient versions 22), + (this only works starting with emacsclient versions 22),  * "konqueror": use 'kfmclient' to open the man page in a new konqueror -tab (see 'Note about konqueror' below). + tab (see 'Note about konqueror' below).    Values for other tools can be used if there is a corresponding  `man.<tool>.cmd` configuration entry (see below). 
diff --git a/git-instaweb.html b/git-instaweb.html index fa15890..38fa306 100644 --- a/git-instaweb.html +++ b/git-instaweb.html 
@@ -789,7 +789,8 @@  The HTTP daemon command-line that will be executed.   Command-line options may be specified here, and the   configuration file will be added at the end of the command-line.  - Currently apache2, lighttpd, mongoose, plackup and webrick are supported.  + Currently apache2, lighttpd, mongoose, plackup, python and  + webrick are supported.   (Default: lighttpd)   </p>   </dd>  @@ -906,7 +907,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2018-01-26 15:11:04 PST  + 2019-02-05 15:33:20 PST   </div>   </div>   </body>  
diff --git a/git-instaweb.txt b/git-instaweb.txt index e8ecdbf..a54fe44 100644 --- a/git-instaweb.txt +++ b/git-instaweb.txt 
@@ -29,7 +29,8 @@ 	The HTTP daemon command-line that will be executed. 	Command-line options may be specified here, and the 	configuration file will be added at the end of the command-line. -	Currently apache2, lighttpd, mongoose, plackup and webrick are supported. +	Currently apache2, lighttpd, mongoose, plackup, python and +	webrick are supported. 	(Default: lighttpd)    -m:: 
diff --git a/git-log.html b/git-log.html index 115f9da..d86bb14 100644 --- a/git-log.html +++ b/git-log.html 
@@ -1383,19 +1383,19 @@  <li>   <p>   If the starting point is specified as <code>ref@{Nth}</code>, show the index  -format.  + format.   </p>   </li>   <li>   <p>   If the starting point was specified as <code>ref@{now}</code>, show the  -timestamp format.  + timestamp format.   </p>   </li>   <li>   <p>   If neither was used, but <code>--date</code> was given on the command line, show  -the timestamp in the format requested by <code>--date</code>.  + the timestamp in the format requested by <code>--date</code>.   </p>   </li>   <li>  
diff --git a/git-p4.html b/git-p4.html index 66592a5..81d988e 100644 --- a/git-p4.html +++ b/git-p4.html 
@@ -838,7 +838,7 @@  <li>   <p>   Imports the full contents of the head revision from the given p4  -depot path into a single commit in the Git branch <em>refs/remotes/p4/master</em>.  + depot path into a single commit in the Git branch <em>refs/remotes/p4/master</em>.   </p>   </li>   <li>  @@ -1888,7 +1888,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2018-10-25 23:36:57 PDT  + 2019-02-05 15:33:20 PST   </div>   </div>   </body>  
diff --git a/git-p4.txt b/git-p4.txt index f0a0280..3494a1d 100644 --- a/git-p4.txt +++ b/git-p4.txt 
@@ -71,12 +71,12 @@  ------------  This:   -1. Creates an empty Git repository in a subdirectory called 'project'. +1. Creates an empty Git repository in a subdirectory called 'project'.  + -2. Imports the full contents of the head revision from the given p4 -depot path into a single commit in the Git branch 'refs/remotes/p4/master'. +2. Imports the full contents of the head revision from the given p4 + depot path into a single commit in the Git branch 'refs/remotes/p4/master'.  + -3. Creates a local branch, 'master' from this remote and checks it out. +3. Creates a local branch, 'master' from this remote and checks it out.    To reproduce the entire p4 history in Git, use the '@all' modifier on  the depot path: 
diff --git a/git-reset.html b/git-reset.html index 77b864f..9ed231e 100644 --- a/git-reset.html +++ b/git-reset.html 
@@ -917,9 +917,9 @@  <li>   <p>   You are happily working on something, and find the changes  -in these files are in good order. You do not want to see them  -when you run <code>git diff</code>, because you plan to work on other files  -and changes with these files are distracting.  + in these files are in good order. You do not want to see them  + when you run <code>git diff</code>, because you plan to work on other files  + and changes with these files are distracting.   </p>   </li>   <li>  @@ -930,16 +930,16 @@  <li>   <p>   However, you already dirtied the index (i.e. your index does  -not match the <code>HEAD</code> commit). But you know the pull you are going  -to make does not affect <code>frotz.c</code> or <code>filfre.c</code>, so you revert the  -index changes for these two files. Your changes in working tree  -remain there.  + not match the <code>HEAD</code> commit). But you know the pull you are going  + to make does not affect <code>frotz.c</code> or <code>filfre.c</code>, so you revert the  + index changes for these two files. Your changes in working tree  + remain there.   </p>   </li>   <li>   <p>   Then you can pull and merge, leaving <code>frotz.c</code> and <code>filfre.c</code>  -changes still in the working tree.  + changes still in the working tree.   </p>   </li>   </ol></div>  @@ -959,8 +959,8 @@  <li>   <p>   This is most often done when you remembered what you  -just committed is incomplete, or you misspelled your commit  -message, or both. Leaves working tree as it was before "reset".  + just committed is incomplete, or you misspelled your commit  + message, or both. Leaves working tree as it was before "reset".   </p>   </li>   <li>  @@ -971,8 +971,8 @@  <li>   <p>   "reset" copies the old head to <code>.git/ORIG_HEAD</code>; redo the  -commit by starting with its log message. If you do not need to  -edit the message further, you can give <code>-C</code> option instead.  + commit by starting with its log message. If you do not need to  + edit the message further, you can give <code>-C</code> option instead.   </p>   <div class="paragraph"><p>See also the <code>--amend</code> option to <a href="git-commit.html">git-commit(1)</a>.</p></div>   </li>  @@ -992,9 +992,9 @@  <li>   <p>   You have made some commits, but realize they were premature  -to be in the <code>master</code> branch. You want to continue polishing  -them in a topic branch, so create <code>topic/wip</code> branch off of the  -current <code>HEAD</code>.  + to be in the <code>master</code> branch. You want to continue polishing  + them in a topic branch, so create <code>topic/wip</code> branch off of the  + current <code>HEAD</code>.   </p>   </li>   <li>  @@ -1022,10 +1022,10 @@  <li>   <p>   The last three commits (<code>HEAD</code>, <code>HEAD^</code>, and <code>HEAD~2</code>) were bad  -and you do not want to ever see them again. Do <strong>not</strong> do this if  -you have already given these commits to somebody else. (See the  -"RECOVERING FROM UPSTREAM REBASE" section in <a href="git-rebase.html">git-rebase(1)</a> for  -the implications of doing so.)  + and you do not want to ever see them again. Do <strong>not</strong> do this if  + you have already given these commits to somebody else. (See the  + "RECOVERING FROM UPSTREAM REBASE" section in <a href="git-rebase.html">git-rebase(1)</a>  + for the implications of doing so.)   </p>   </li>   </ol></div>  @@ -1050,30 +1050,30 @@  <li>   <p>   Try to update from the upstream resulted in a lot of  -conflicts; you were not ready to spend a lot of time merging  -right now, so you decide to do that later.  + conflicts; you were not ready to spend a lot of time merging  + right now, so you decide to do that later.   </p>   </li>   <li>   <p>   "pull" has not made merge commit, so <code>git reset --hard</code>  -which is a synonym for <code>git reset --hard HEAD</code> clears the mess  -from the index file and the working tree.  + which is a synonym for <code>git reset --hard HEAD</code> clears the mess  + from the index file and the working tree.   </p>   </li>   <li>   <p>   Merge a topic branch into the current branch, which resulted  -in a fast-forward.  + in a fast-forward.   </p>   </li>   <li>   <p>   But you decided that the topic branch is not ready for public  -consumption yet. "pull" or "merge" always leaves the original  -tip of the current branch in <code>ORIG_HEAD</code>, so resetting hard to it  -brings your index file and the working tree back to that state,  -and resets the tip of the branch to that commit.  + consumption yet. "pull" or "merge" always leaves the original  + tip of the current branch in <code>ORIG_HEAD</code>, so resetting hard to it  + brings your index file and the working tree back to that state,  + and resets the tip of the branch to that commit.   </p>   </li>   </ol></div>  @@ -1095,18 +1095,18 @@  <li>   <p>   Even if you may have local modifications in your  -working tree, you can safely say <code>git pull</code> when you know  -that the change in the other branch does not overlap with  -them.  + working tree, you can safely say <code>git pull</code> when you know  + that the change in the other branch does not overlap with  + them.   </p>   </li>   <li>   <p>   After inspecting the result of the merge, you may find  -that the change in the other branch is unsatisfactory. Running  -<code>git reset --hard ORIG_HEAD</code> will let you go back to where you  -were, but it will discard your local changes, which you do not  -want. <code>git reset --merge</code> keeps your local changes.  + that the change in the other branch is unsatisfactory. Running  + <code>git reset --hard ORIG_HEAD</code> will let you go back to where you  + were, but it will discard your local changes, which you do not  + want. <code>git reset --merge</code> keeps your local changes.   </p>   </li>   </ol></div>  @@ -1443,7 +1443,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2018-12-01 06:35:58 PST  + 2019-02-05 15:33:20 PST   </div>   </div>   </body>  
diff --git a/git-reset.txt b/git-reset.txt index 9f69ae8..132f8e5 100644 --- a/git-reset.txt +++ b/git-reset.txt 
@@ -115,17 +115,17 @@  ------------  +  <1> You are happily working on something, and find the changes -in these files are in good order. You do not want to see them -when you run `git diff`, because you plan to work on other files -and changes with these files are distracting. + in these files are in good order. You do not want to see them + when you run `git diff`, because you plan to work on other files + and changes with these files are distracting.  <2> Somebody asks you to pull, and the changes sound worthy of merging.  <3> However, you already dirtied the index (i.e. your index does -not match the `HEAD` commit). But you know the pull you are going -to make does not affect `frotz.c` or `filfre.c`, so you revert the -index changes for these two files. Your changes in working tree -remain there. + not match the `HEAD` commit). But you know the pull you are going + to make does not affect `frotz.c` or `filfre.c`, so you revert the + index changes for these two files. Your changes in working tree + remain there.  <4> Then you can pull and merge, leaving `frotz.c` and `filfre.c` -changes still in the working tree. + changes still in the working tree.    Undo a commit and redo::  + @@ -137,12 +137,12 @@  ------------  +  <1> This is most often done when you remembered what you -just committed is incomplete, or you misspelled your commit -message, or both. Leaves working tree as it was before "reset". + just committed is incomplete, or you misspelled your commit + message, or both. Leaves working tree as it was before "reset".  <2> Make corrections to working tree files.  <3> "reset" copies the old head to `.git/ORIG_HEAD`; redo the -commit by starting with its log message. If you do not need to -edit the message further, you can give `-C` option instead. + commit by starting with its log message. If you do not need to + edit the message further, you can give `-C` option instead.  +  See also the `--amend` option to linkgit:git-commit[1].   @@ -155,9 +155,9 @@  ------------  +  <1> You have made some commits, but realize they were premature -to be in the `master` branch. You want to continue polishing -them in a topic branch, so create `topic/wip` branch off of the -current `HEAD`. + to be in the `master` branch. You want to continue polishing + them in a topic branch, so create `topic/wip` branch off of the + current `HEAD`.  <2> Rewind the master branch to get rid of those three commits.  <3> Switch to `topic/wip` branch and keep working.   @@ -169,10 +169,10 @@  ------------  +  <1> The last three commits (`HEAD`, `HEAD^`, and `HEAD~2`) were bad -and you do not want to ever see them again. Do *not* do this if -you have already given these commits to somebody else. (See the -"RECOVERING FROM UPSTREAM REBASE" section in linkgit:git-rebase[1] for -the implications of doing so.) + and you do not want to ever see them again. Do *not* do this if + you have already given these commits to somebody else. (See the + "RECOVERING FROM UPSTREAM REBASE" section in linkgit:git-rebase[1] + for the implications of doing so.)    Undo a merge or pull::  + @@ -189,18 +189,18 @@  ------------  +  <1> Try to update from the upstream resulted in a lot of -conflicts; you were not ready to spend a lot of time merging -right now, so you decide to do that later. + conflicts; you were not ready to spend a lot of time merging + right now, so you decide to do that later.  <2> "pull" has not made merge commit, so `git reset --hard` -which is a synonym for `git reset --hard HEAD` clears the mess -from the index file and the working tree. + which is a synonym for `git reset --hard HEAD` clears the mess + from the index file and the working tree.  <3> Merge a topic branch into the current branch, which resulted -in a fast-forward. + in a fast-forward.  <4> But you decided that the topic branch is not ready for public -consumption yet. "pull" or "merge" always leaves the original -tip of the current branch in `ORIG_HEAD`, so resetting hard to it -brings your index file and the working tree back to that state, -and resets the tip of the branch to that commit. + consumption yet. "pull" or "merge" always leaves the original + tip of the current branch in `ORIG_HEAD`, so resetting hard to it + brings your index file and the working tree back to that state, + and resets the tip of the branch to that commit.    Undo a merge or pull inside a dirty working tree::  + @@ -214,14 +214,14 @@  ------------  +  <1> Even if you may have local modifications in your -working tree, you can safely say `git pull` when you know -that the change in the other branch does not overlap with -them. + working tree, you can safely say `git pull` when you know + that the change in the other branch does not overlap with + them.  <2> After inspecting the result of the merge, you may find -that the change in the other branch is unsatisfactory. Running -`git reset --hard ORIG_HEAD` will let you go back to where you -were, but it will discard your local changes, which you do not -want. `git reset --merge` keeps your local changes. + that the change in the other branch is unsatisfactory. Running + `git reset --hard ORIG_HEAD` will let you go back to where you + were, but it will discard your local changes, which you do not + want. `git reset --merge` keeps your local changes.      Interrupted workflow:: 
diff --git a/git-rev-list.html b/git-rev-list.html index ba58789..e6202db 100644 --- a/git-rev-list.html +++ b/git-rev-list.html 
@@ -1314,19 +1314,19 @@  <li>   <p>   If the starting point is specified as <code>ref@{Nth}</code>, show the index  -format.  + format.   </p>   </li>   <li>   <p>   If the starting point was specified as <code>ref@{now}</code>, show the  -timestamp format.  + timestamp format.   </p>   </li>   <li>   <p>   If neither was used, but <code>--date</code> was given on the command line, show  -the timestamp in the format requested by <code>--date</code>.  + the timestamp in the format requested by <code>--date</code>.   </p>   </li>   <li>  @@ -1966,8 +1966,13 @@  specification contained in &lt;path&gt;.</p></div>   <div class="paragraph"><p>The form <em>--filter=tree:&lt;depth&gt;</em> omits all blobs and trees whose depth   from the root tree is &gt;= &lt;depth&gt; (minimum depth if an object is located  -at multiple depths in the commits traversed). Currently, only &lt;depth&gt;=0  -is supported, which omits all blobs and trees.</p></div>  +at multiple depths in the commits traversed). &lt;depth&gt;=0 will not include  +any trees or blobs unless included explicitly in the command-line (or  +standard input when --stdin is used). &lt;depth&gt;=1 will include only the  +tree and blobs which are referenced directly by a commit reachable from  +&lt;commit&gt; or an explicitly-given object. &lt;depth&gt;=2 is like &lt;depth&gt;=1  +while also including trees and blobs one more level removed from an  +explicitly-given commit or tree.</p></div>   </dd>   <dt class="hdlist1">   --no-filter  
diff --git a/git-send-email.html b/git-send-email.html index 682116c..9772ceb 100644 --- a/git-send-email.html +++ b/git-send-email.html 
@@ -778,7 +778,7 @@  <li>   <p>   The original format used by Greg Kroah-Hartman&#8217;s <em>send_lots_of_email.pl</em>  -script  + script   </p>   <div class="paragraph"><p>This format expects the first line of the file to contain the "Cc:" value   and the "Subject:" of the message as the second line.</p></div>  @@ -1607,7 +1607,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2018-11-06 19:54:03 PST  + 2019-02-05 15:33:20 PST   </div>   </div>   </body>  
diff --git a/git-send-email.txt b/git-send-email.txt index 62c6c76..1afe9fc 100644 --- a/git-send-email.txt +++ b/git-send-email.txt 
@@ -33,7 +33,7 @@  formatting are ignored.    2. The original format used by Greg Kroah-Hartman's 'send_lots_of_email.pl' -script + script  +  This format expects the first line of the file to contain the "Cc:" value  and the "Subject:" of the message as the second line. 
diff --git a/git-tag.html b/git-tag.html index 2cfca86..fca30ca 100644 --- a/git-tag.html +++ b/git-tag.html 
@@ -1125,19 +1125,19 @@  <li>   <p>   The sane thing.  -Just admit you screwed up, and use a different name. Others have  -already seen one tag-name, and if you keep the same name, you  -may be in the situation that two people both have "version X",  -but they actually have <em>different</em> "X"'s. So just call it "X.1"  -and be done with it.  + Just admit you screwed up, and use a different name. Others have  + already seen one tag-name, and if you keep the same name, you  + may be in the situation that two people both have "version X",  + but they actually have <em>different</em> "X"'s. So just call it "X.1"  + and be done with it.   </p>   </li>   <li>   <p>   The insane thing.  -You really want to call the new version "X" too, <em>even though</em>  -others have already seen the old one. So just use <em>git tag -f</em>  -again, as if you hadn&#8217;t already published the old one.  + You really want to call the new version "X" too, <em>even though</em>  + others have already seen the old one. So just use <em>git tag -f</em>  + again, as if you hadn&#8217;t already published the old one.   </p>   </li>   </ol></div>  @@ -1314,7 +1314,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2018-10-30 00:33:48 PDT  + 2019-02-05 15:33:20 PST   </div>   </div>   </body>  
diff --git a/git-tag.txt b/git-tag.txt index f2d644e..a74e7b9 100644 --- a/git-tag.txt +++ b/git-tag.txt 
@@ -237,16 +237,16 @@  the old tag. In that case you can do one of two things:    . The sane thing. -Just admit you screwed up, and use a different name. Others have -already seen one tag-name, and if you keep the same name, you -may be in the situation that two people both have "version X", -but they actually have 'different' "X"'s. So just call it "X.1" -and be done with it. + Just admit you screwed up, and use a different name. Others have + already seen one tag-name, and if you keep the same name, you + may be in the situation that two people both have "version X", + but they actually have 'different' "X"'s. So just call it "X.1" + and be done with it.    . The insane thing. -You really want to call the new version "X" too, 'even though' -others have already seen the old one. So just use 'git tag -f' -again, as if you hadn't already published the old one. + You really want to call the new version "X" too, 'even though' + others have already seen the old one. So just use 'git tag -f' + again, as if you hadn't already published the old one.    However, Git does *not* (and it should not) change tags behind  users back. So if somebody already got the old tag, doing a 
diff --git a/git-upload-pack.html b/git-upload-pack.html index c62139f..1a6fa42 100644 --- a/git-upload-pack.html +++ b/git-upload-pack.html 
@@ -834,7 +834,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2018-10-30 00:33:48 PDT  + 2019-02-05 15:33:20 PST   </div>   </div>   </body>  
diff --git a/git-upload-pack.txt b/git-upload-pack.txt index 998f52d..9822c1e 100644 --- a/git-upload-pack.txt +++ b/git-upload-pack.txt 
@@ -22,7 +22,6 @@  program pair is meant to be used to pull updates from a remote  repository. For push operations, see 'git send-pack'.   -  OPTIONS  -------   
diff --git a/rev-list-options.txt b/rev-list-options.txt index 98b538b..8a48679 100644 --- a/rev-list-options.txt +++ b/rev-list-options.txt 
@@ -270,13 +270,13 @@  +  --  1. If the starting point is specified as `ref@{Nth}`, show the index -format. + format.  +  2. If the starting point was specified as `ref@{now}`, show the -timestamp format. + timestamp format.  +  3. If neither was used, but `--date` was given on the command line, show -the timestamp in the format requested by `--date`. + the timestamp in the format requested by `--date`.  +  4. Otherwise, show the index format.  -- @@ -730,8 +730,13 @@  +  The form '--filter=tree:<depth>' omits all blobs and trees whose depth  from the root tree is >= <depth> (minimum depth if an object is located -at multiple depths in the commits traversed). Currently, only <depth>=0 -is supported, which omits all blobs and trees. +at multiple depths in the commits traversed). <depth>=0 will not include +any trees or blobs unless included explicitly in the command-line (or +standard input when --stdin is used). <depth>=1 will include only the +tree and blobs which are referenced directly by a commit reachable from +<commit> or an explicitly-given object. <depth>=2 is like <depth>=1 +while also including trees and blobs one more level removed from an +explicitly-given commit or tree.    --no-filter:: 	Turn off any previous `--filter=` argument. 
diff --git a/technical/commit-graph-format.txt b/technical/commit-graph-format.txt index cc0474b..16452a0 100644 --- a/technical/commit-graph-format.txt +++ b/technical/commit-graph-format.txt 
@@ -76,7 +76,7 @@  of the ith commit. Stores value 0x7000000 if no parent in that  position. If there are more than two parents, the second value  has its most-significant bit on and the other bits store an array - position into the Large Edge List chunk. + position into the Extra Edge List chunk.  * The next 8 bytes store the generation number of the commit and  the commit time in seconds since EPOCH. The generation number  uses the higher 30 bits of the first 4 bytes, while the commit @@ -84,7 +84,7 @@  2 bits of the lowest byte, storing the 33rd and 34th bit of the  commit time.   - Large Edge List (ID: {'E', 'D', 'G', 'E'}) [Optional] + Extra Edge List (ID: {'E', 'D', 'G', 'E'}) [Optional]  This list of 4-byte values store the second through nth parents for  all octopus merges. The second parent value in the commit data stores  an array position within this list along with the most-significant bit 
diff --git a/technical/pack-protocol.html b/technical/pack-protocol.html index 207f7a9..dcf2ed9 100644 --- a/technical/pack-protocol.html +++ b/technical/pack-protocol.html 
@@ -759,6 +759,14 @@  protocol-common.txt. When the grammar indicate <code>PKT-LINE(...)</code>, unless   otherwise noted the usual pkt-line LF rules apply: the sender SHOULD   include a LF, but the receiver MUST NOT complain if it is not present.</p></div>  +<div class="paragraph"><p>An error packet is a special pkt-line that contains an error string.</p></div>  +<div class="listingblock">  +<div class="content">  +<pre><code> error-line = PKT-LINE("ERR" SP explanation-text)</code></pre>  +</div></div>  +<div class="paragraph"><p>Throughout the protocol, where <code>PKT-LINE(...)</code> is expected, an error packet MAY  +be sent. Once this packet is sent by a client or a server, the data transfer  +process defined in this protocol is terminated.</p></div>   </div>   </div>   <div class="sect1">  @@ -832,12 +840,6 @@  "0039git-upload-pack /schacon/gitbook.git\0host=example.com\0" |   nc -v example.com 9418</code></pre>   </div></div>  -<div class="paragraph"><p>If the server refuses the request for some reasons, it could abort  -gracefully with an error message.</p></div>  -<div class="listingblock">  -<div class="content">  -<pre><code> error-line = PKT-LINE("ERR" SP explanation-text)</code></pre>  -</div></div>   </div>   </div>   <div class="sect1">  @@ -1156,12 +1158,11 @@  <div class="paragraph"><p>Then the server will start sending its packfile data.</p></div>   <div class="listingblock">   <div class="content">  -<pre><code> server-response = *ack_multi ack / nak / error-line  +<pre><code> server-response = *ack_multi ack / nak   ack_multi = PKT-LINE("ACK" SP obj-id ack_status)   ack_status = "continue" / "common" / "ready"   ack = PKT-LINE("ACK" SP obj-id)  - nak = PKT-LINE("NAK")  - error-line = PKT-LINE("ERR" SP explanation-text)</code></pre>  + nak = PKT-LINE("NAK")</code></pre>   </div></div>   <div class="paragraph"><p>A simple clone may look like this (with no <em>have</em> lines):</p></div>   <div class="listingblock">  @@ -1436,7 +1437,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2018-08-17 15:20:20 PDT  + 2019-02-05 15:33:20 PST   </div>   </div>   </body>  
diff --git a/technical/pack-protocol.txt b/technical/pack-protocol.txt index 6ac774d..7a2375a 100644 --- a/technical/pack-protocol.txt +++ b/technical/pack-protocol.txt 
@@ -22,6 +22,16 @@  otherwise noted the usual pkt-line LF rules apply: the sender SHOULD  include a LF, but the receiver MUST NOT complain if it is not present.   +An error packet is a special pkt-line that contains an error string. + +---- + error-line = PKT-LINE("ERR" SP explanation-text) +---- + +Throughout the protocol, where `PKT-LINE(...)` is expected, an error packet MAY +be sent. Once this packet is sent by a client or a server, the data transfer +process defined in this protocol is terminated. +  Transports  ----------  There are three transports over which the packfile protocol is @@ -89,13 +99,6 @@  "0039git-upload-pack /schacon/gitbook.git\0host=example.com\0" |  nc -v example.com 9418   -If the server refuses the request for some reasons, it could abort -gracefully with an error message. - ----- - error-line = PKT-LINE("ERR" SP explanation-text) ----- -    SSH Transport  ------------- @@ -398,12 +401,11 @@  Then the server will start sending its packfile data.    ---- - server-response = *ack_multi ack / nak / error-line + server-response = *ack_multi ack / nak  ack_multi = PKT-LINE("ACK" SP obj-id ack_status)  ack_status = "continue" / "common" / "ready"  ack = PKT-LINE("ACK" SP obj-id)  nak = PKT-LINE("NAK") - error-line = PKT-LINE("ERR" SP explanation-text)  ----    A simple clone may look like this (with no 'have' lines): 
diff --git a/technical/protocol-v2.html b/technical/protocol-v2.html index fc43451..9672e51 100644 --- a/technical/protocol-v2.html +++ b/technical/protocol-v2.html 
@@ -1097,7 +1097,13 @@  Request that various objects from the packfile be omitted   using one of several filtering techniques. These are intended   for use with partial clone and partial fetch operations. See  - `rev-list` for possible "filter-spec" values.</code></pre>  + `rev-list` for possible "filter-spec" values. When communicating  + with other processes, senders SHOULD translate scaled integers  + (e.g. "1k") into a fully-expanded form (e.g. "1024") to aid  + interoperability with older receivers that may not understand  + newly-invented scaling suffixes. However, receivers SHOULD  + accept the following suffixes: 'k', 'm', and 'g' for 1024,  + 1048576, and 1073741824, respectively.</code></pre>   </div></div>   <div class="paragraph"><p>If the <em>ref-in-want</em> feature is advertised, the following argument can   be included in the client&#8217;s request as well as the potential addition of  @@ -1109,6 +1115,17 @@  particular ref, where &lt;ref&gt; is the full name of a ref on the   server.</code></pre>   </div></div>  +<div class="paragraph"><p>If the <em>sideband-all</em> feature is advertised, the following argument can be  +included in the client&#8217;s request:</p></div>  +<div class="literalblock">  +<div class="content">  +<pre><code>sideband-all  + Instruct the server to send the whole response multiplexed, not just  + the packfile section. All non-flush and non-delim PKT-LINE in the  + response (not only in the packfile section) will then start with a byte  + indicating its sideband (1, 2, or 3), and the server may send "0005\2"  + (a PKT-LINE of sideband 2 with no payload) as a keepalive packet.</code></pre>  +</div></div>   <div class="paragraph"><p>The response of <code>fetch</code> is broken into a number of sections separated by   delimiter packets (0001), with each section beginning with its section   header.</p></div>  @@ -1321,7 +1338,7 @@  <div id="footer">   <div id="footer-text">   Last updated  - 2019-01-29 12:37:18 PST  + 2019-02-05 15:33:20 PST   </div>   </div>   </body>  
diff --git a/technical/protocol-v2.txt b/technical/protocol-v2.txt index 09e4e02..ead85ce 100644 --- a/technical/protocol-v2.txt +++ b/technical/protocol-v2.txt 
@@ -296,7 +296,13 @@ 	Request that various objects from the packfile be omitted 	using one of several filtering techniques. These are intended 	for use with partial clone and partial fetch operations. See -	`rev-list` for possible "filter-spec" values. +	`rev-list` for possible "filter-spec" values. When communicating +	with other processes, senders SHOULD translate scaled integers +	(e.g. "1k") into a fully-expanded form (e.g. "1024") to aid +	interoperability with older receivers that may not understand +	newly-invented scaling suffixes. However, receivers SHOULD +	accept the following suffixes: 'k', 'm', and 'g' for 1024, +	1048576, and 1073741824, respectively.    If the 'ref-in-want' feature is advertised, the following argument can  be included in the client's request as well as the potential addition of @@ -307,6 +313,16 @@ 	particular ref, where <ref> is the full name of a ref on the 	server.   +If the 'sideband-all' feature is advertised, the following argument can be +included in the client's request: + + sideband-all +	Instruct the server to send the whole response multiplexed, not just +	the packfile section. All non-flush and non-delim PKT-LINE in the +	response (not only in the packfile section) will then start with a byte +	indicating its sideband (1, 2, or 3), and the server may send "0005\2" +	(a PKT-LINE of sideband 2 with no payload) as a keepalive packet. +  The response of `fetch` is broken into a number of sections separated by  delimiter packets (0001), with each section beginning with its section  header.